home *** CD-ROM | disk | FTP | other *** search
- R.F.I. Ralf Fitzner Infotronik Frankfurt, d. 30.06.89
- Inh.: Ralf Fitzner
- Am Alten See 21
- 6000 Frankfurt 90 - Rödelheim
-
- BTX : 0697895704-0001
- Mailbox : 06174/5355 (300-1200-2400/8/N/1) User# 1111
- FAX : 06174/3834
- Telex : 1631 btx d
-
- So... Nun hab ich einige Wochen gebastelt, und hier ist das Ergebnis :
-
- HDInfo , damit die Übersicht nicht verloren geht...
-
- Das Programm ist natürlich in GfA-Basic geschrieben. (Was sonst...)
-
- Leider mußte ich noch GfA-Basic 2.02 nehmen, da der Compiler für 3.07 noch
- nicht fertig war. Daher sind die Zahlenwerte nicht gerunded sondern
- abgeschnitten. Aber was macht das schon.
-
- Besonders stolz bin ich darauf, das mein Programm nicht nur in langweiligem
- schwarz/weiß läuft, sondern auch mit mehreren Farben in mittlerer
- Auflösung.
-
- Warum ich nicht den Original Basic-Source-Code 'rausgebe ?!?
-
- Nun, dies ist nicht mein erstes PD-Programm. Und ich mußte schon mehrmals
- feststellen, daß es für viele Leute unheimlich reizvoll ist, als erstes
- meinen Namen 'rauszuschmeißen. Und da man mit PD-Programmen schon kein Geld
- verdienen kann, so möchte ich doch zumindest als Belohnung für die Arbeit
- MEINEN Namen unten stehen haben...
-
-
- Soooo...
- Das Programm an sich ist wohl nicht weiter erklärungsbedürftig. Ich möchte
- nur darauf hinweisen, daß ich keine Gewähr übernehme, wenn mehr als eine
- Harddisk angeschlossen ist, oder jemand ein Fremdfabrikat benutzt.
- Dieses Programm ist getestet mit je einer SH204/5 und Megafile 20/30/60.
- (Vielen Dank an die Firma KFC-Computer in Königstein.)
- Insbesondere läuft dieses Programm natürlich falsch, wenn nicht der
- original ATARI AHDI-Treiber benutzt wird. Aber eigentlich sollte dies die
- Regel sein. (Schönen Gruß an meinen Freund Uli Eickmann und seine 8
- Bootpartitions...)
-
- Leider dauert es bei den "alten" Tos-Versionen, einschließlich Blitter-Tos,
- furchtbar lange bis die Werte eingelesen sind. Erst das "neue" Tos 1.4, das
- z.Zt. in der Version vom 22.02.89 als ROM-Version durch die Lande geistert,
- macht richtig Dampf, und ist bis zu 10 mal schneller.
-
- Hmmm....
- Also wer tatsächlich bis hierhin gelesen hat, den interessiert vielleicht
- auch noch, wie die einzelnen Daten erzeugt werden.
-
- Zunächst einmal fragt das Programm nach der Bildschirmauflösung. Dazu wird
- eine XBIOS Funktion benutzt, die je nach Auflösung eine 0,1 oder 2 (hohe )
- liefert : mode=xbios(4)
- Und wenn mode=0 ist, dann geht's leider nicht weiter.
-
- Ich hab dann auch noch kurz nachgesehen, was sie denn so für RAM-Speicher
- eingebaut haben. Auch wenn sie 2.5KByte haben sollten stellt das keine
- Schwierigkeiten für's Programm dar. Da gibts nämlich schon wieder eine
- Systemvariable an der Adresse $FF801, und da steht drin, wie die beiden
- RAM-Bänke bestückt sind. Übrigens wäre es auch möglich einen ST mit 256k
- oder mit 640KByte zu bestücken, aber was möglich ist muß nicht unbedingt
- gut sein...
- Wenn sie sich wundern sollten, wo denn die ganzen Bytes hin sind, die da
- als belegt gekennzeichnet sind, dann geht es Ihnen nicht anders als mir.
- Also 32KByte gehören schonmal zum Bildschirmspeicher. Na und dann gibts da
- eine Menge Systemvariablen. Aber ich bin auch nicht auf über 100KByte
- gekommen. Nun ja, wird schon richtig sein...
-
- Dann wird nachgesehen, was da so an Laufwerken vorhanden ist. Das mache ich
- mit der BIOS(10) Funktion. Diese liefert als Rückmeldung einen Wert, der
- noch Bitweise kontrolliert werden muß. Bit 0 = Laufwerk A , Bit 1 = LW B
- usw. Dabei habe ich auch daran gedacht, das man ja vielleicht auch eine
- RAM-Disk installiert hat z.B. als C,D oder G,H. Na jedenfalls kommt mein
- Programm damit klar. Aber wie gesagt, wenn Sie Scheibenkleisterverdorben
- sind, oder bei Uli eine EX-Harddisk gekauft haben, können Sie dieses
- Programm vergessen. Mehr als 4 Partitions mag es nicht so richtig.
-
- Dann werden ein paar Striche und Boxen gezeichnet, damit die Daten den
- richtigen Rahmen haben...
-
- Um die TOS-Version zu erkennen habe ich nicht etwa einfach mit GEMDOS(48)
- nachgesehen. Da bekommt man nämlich für das alte RAM-TOS (1.1) und für das
- erste ROM-TOS (1.2 vom 06.02.86) die gleiche Rückmeldung. Also hab ich
- einfach mal bei der Adresse $FC0018 nachgesehen. In meinem ST-INTERN steht
- nämlich, daß da das Erstellungsdatum sein soll. Falls irgentjemand mit
- Boot-Roms und RAM-TOS seine Harddisk betreibt (Was eigentlich gar nicht
- gehen dürfte, aber doch funktioniert...) steht an der Adresse natürlich
- viel Blödsinn, woraus das Programm dann schließt, das Boot-Roms eingesetzt
- sind.
-
- Danach wird nachgesehen, ob ein Blitter im Gehäuse verstaubt. Dazu wird die
- XBIOS(64) Funktion benutzt. Tjaaaa, werden da manche sagen, diese Funktion
- gibts ja im TOS 1.2 noch gar nicht. Aber das interessiert mein Programm
- nicht weiter. Wenn keine Rückmeldung kommt, dann ist eben kein Blitter
- drin. Klare Sache und damit hopp. (War das nicht von Kempowski ?)
-
- Und weil ich noch ein wenig Platz hatte, hab ich noch nachgesehen, ob da
- vielleicht ein Drucker ONLINE am Kabel hängt. Dazu gibt's die Funktion
- GEMDOS(17).
- Wenn sie Kapitalist sein sollten, und sich einen LASERdrucker geleistet
- haben, dann kann ich Ihnen nicht helfen. Ich prüfe nur die parallele
- Schnittstelle, und bin für DMA nicht zuständig.
-
- So, jetzt gehts dann endlich los. Wie sagt mir die Harddisk, wie sie
- formatiert und partitioniert wurde... Das habe ich mich auch 2 Wochen
- gefragt. Bis ich in einem uralten Assembler-Buch von Markt&Technik einen
- Hinweis auf einen BIOS-PARAMETER-BLOCK fand. Da legt das Betriebssystem
- doch tatsächlich eine Liste an, wo drin steht, was das Laufwerk so bietet.
- Sektorgröße,Cluster Anzahl der Daten-Cluster usw. Und mit ein bißchen PEEK
- und BIOS(7,LW) kommt man an die Werte. Bloß... irgentwie fehlen da immer
- 2048 Byte. Wo die hingehören hab ich bisher noch nicht rausbekommen, aber
- es müßten eigentlich zur Datenspeicherung 2 Cluster mehr da sein. Na ja, da
- muß man mit Leben. Leider steht in diesem BPB nicht, was da so für die
- FAT's und das Directory 'draufgeht. Also mußte es noch eine andere
- Möglichkeit geben, um an die wirklich formatierten Sektoren zu kommen. Da
- bleibt dann nichts anderes mehr übrig, als den Bootsektor von jeder
- Partition auszulesen und zu zerstückeln. Da darf man dann nicht mit INTEL
- und MOTOROLA Schreibweise durcheinanderkommen. Zum Auslesen des Bootsektors
- nimmt man den BIOS4 Befehl. Im GfA-Basic 3.0 Handbuch steht auf Seite 12-16
- wie man den Befehl anwendet. Aber woher bekommt man da einen
- Speicherbereich, in den die Daten geschrieben werden ? Zu 64er Zeiten war
- das eigentlich kein Problem. Irgentwo waren da immer ein paar Bytes übrig.
- Aber man kann doch nicht einfach sagen : So, nun nimm mal den
- Speicherbereich da irgentwo ab $5000 oder was weiß ich wo. Und schließlich
- programmieren wir nicht in Assembler, wo das Programm eine Anweisung zum
- Speicherreservieren kennt. Ums kurz zu machen : In meiner Verzweiflung
- einen freien Speicherbereich zu finden, bin ich beim Durchblättern des 3.0
- Handbuchs auf die Seite 2-41 gekommen. Da steht eine Variable HIMEM
- erklärt, die angibt, ab welcher Adresse der Speicher nach dem Programm
- wieder frei ist. Na also, da war ja endlich was, wo man mit BIOS4 seine
- Daten ablegen konnte, und mit PEEK wieder abfragen. So kommt man also an
- die tatsächlich formatierten Partitiongrößen. Die Größen für die FAT's sind
- nicht unbedingt interessant. Das Directory belegt bei Festplatten
- 256*32Byte = 16 Sektoren (Bei Floppys sind dies 112*32Byte = 7 Sektoren).
- D.H. das man auf eine Diskette nur max.112 Files speichern kann, und auf
- einer Harddisk-Partition je 256. Beim TOS 1.4 ist das ein bischen
- anders. Da können es schon mal mehr als 256 Files pro Partition sein.
-
- Aber das ist eigentlich uninteressant. Auf jeden Fall muß man wissen, das
- eine Datei, auch wenn sie nur 1 Byte lang ist, auf der Harddisk mindestens
- 1024 Byte belegt ! Da wundert man sich dann nicht mehr, wenn bei viel
- Kleinkram tatsächlich hunderte von KBytes verschwinden... Mit dem
- "normalen" ZEIGE INFO wird die FAT durchsucht, und aus den darin stehenden
- Programmlängen eine Gesamtbelegungszahl gebildet. Die ist aber relativ
- uninteressant, denn wohl jeder wird schon mal gemerkt haben, das beim
- Kopieren von Dateien, die eigentlich passen müßten, plötzlich "Disk hat zu
- wenig Speicher" erscheint. Und daher zeigt das Programm die tatsächlich
- belegten Bytes an.
-
- Tja, zur grafischen Ausgabe gibts nicht viel zu erklären. 6 Kreise, die so
- nach und nach ausgefüllt werden. Am linken Rand wird die RAM-Belegung
- angezeigt. Na ja... Dann werden die aktiven Partitions dargestellt. Ganz
- rechts dann die gesamte HD, zusammengesetzt aus den einzelnen Partitions.
-
- Hmmm, und dann noch die Sache mit der Zugriffszeit. Also, sie sollten nicht
- annehmen, das diese angezeigte Zahl nun wirklich die wahre Zugriffszeit
- ist. Sie müssen das mal so sehen. Da gibt es im Atari einen Timer, der eine
- "Auflösung" von 200msec. hat. Und dann gibt es die Harddisk, die schneller
- als 100msec. ist. Und wie wollen Sie da eine Zugriffszeit im Bereich von
- z.B. 50msec. messen ? Also ich hab einfach 100 mal einen Sector von der
- Platte in den Speicher eingelesen, und die Gesamtzeit durch 100 geteilt.
- Und so kommt dann zum Schluß eine Zugriffszeit heraus. Der jeweilige
- Sector, der gelesen wird, wird zufällig ermittelt, aus der Gesamtzahl, der
- auf der Partition vorhandenen Sektoren. Daraus ergibt sich, das je kleiner
- die Partition ist, umso kürzer auch die Zugriffszeit ist. Nehmen sie den
- Wert einfach als Anhaltspunkt.
-
- Wenn bei Ihnen ganz unten rechts 00.01 Uhr stehen sollte , dann sollten sie
- sich überlegen, ob Sie sich nicht eine Uhr einbauen lassen , damit mal
- etwas Abwechslung in's Inhaltsverzeichnis kommt, oder bevorzugen sie etwa
- die Darstellung als Bild ? Na ja, soll's auch geben...
-
- Haben sie wirklich bis hierhin gelesen ??? Respekt,respekt.
-
- Das Programm begann mal als 10 Zeiler. Ich hatte gerade seit 2 Tagen meine
- gebrauchte SH205 und wollte ein kleines Accesory schreiben, das den freien
- Speicherplatz der Platte ausgibt, aber dann hat's mich mal wieder gepackt,
- und dabei ist dieses Programm entstanden. Der Source-Code (blödes Wort) hat
- nach einer Woche etwa 11KByte erreicht, und nach ein wenig Überlegen kam
- ich dann unter 7.5KByte. Man soll gar nicht glauben, was beim Mergen und
- Verschieben für ein Blödsinn an den unmöglichsten Stellen stehen bleibt.
- Na, und dann kam der Tag, an dem ich aus versehen das Quell-Programm
- überschrieben hatte, und nur noch die Compilierte Version übrig war. Da
- mußte ich dann nochmal komplett neu anfangen. Dabei ist dann diese Version
- 3.0 herausgekommen. Ich hoffe das sie nicht nur mir gefällt.
-
- Ich hab auch noch ein kleines "Zwischenprodukt" meiner Arbeit mit
- dazugelegt. Da ist vorgeführt, wie man mit dem BIOS4 Befehl umgeht.
- Vielleicht etwas umständlich, aber dafür übersichtlich.
-
- OK, ich weiß, sie haben keine Lust mehr meinen Blödsinn weiter zu lesen.
- Kann ich verstehen. Hätte ich auch nicht gemacht.
-
- Ich möchte noch kurz darauf hinweisen, wo man sich die nötigen Grundlagen
- für ein solches Programm verschafft :
-
- ATARI ST Profibuch (SYBEX 1988)
- ATARI ST Intern (Data Becker)
- ATARI ST Assembler-Buch (Markt und Technik)
- GfA Handbuch TOS & GEM (GfA-Systemtechnik)
- GfA BASIC 3.0 Handbuch (GfA-Systemtechnik)
- Asterix auf Korsika (EHAPA-Verlag)
-
- Nein, Scheibenkleister habe ich nicht gelesen.
-
- Für die musikalische Untestützung danke ich den PUHDYS aus Ost-Berlin.
-
- Das mit den 20,- für PD-Software muß nun wirklich nicht sein. Ich freu mich
- schon, wenn Sie das Program nicht gleich wieder löschen...
-
- MfG Fitzner
-
- Aaaach....Haaaalt....Hab ich doch nochwas vergessen :
-
- Ich hab mich vor ein paar Tagen selbständig gemacht. Bei mir gibts z.B.
- Lüfterschalter, damit der Festplatten oder MEGA-Lüfter nur dann läuft, wenn
- es wirklich zu warm wird. Oder auch SCART-Umschalter, die wirklich alle
- Pin's umschalten. Oder BTX-Decoder, weil Mailboxen auf die Dauer langweilig
- sind, oder alle Ersatzteile von ATARI,Tandon,Star,NEC,Schneider usw.
- Neugierig ? Na dann würd ich einfach mal weitere Info's anfordern.
- Bis dann...
-
-
-
-